/**
 * User: c3t
 * Date: 13-12-11
 * Time: 下午5:46
 */
define(function(require,exports,module) {
   var obj= require('lib/XmlHttpRequest');

    window.onload=init;
    var areaxml = null;
    function init() {
        initProvince();
        var province= document.getElementById("province")
        province.onchange=getCity;
        var city = document.getElementById("city");
        city.onchange=getCountry;
    }

    function getCountry(){
        var parentNode = getParentNode("city",this.value);
        var nodes = parentNode.getElementsByTagName("country");
        insertOption(nodes,"country");

    }

    function getCity(){
        //得到父节点
        var parentNode = getParentNode("province",this.value);
        //得到父节点里面所有子节点
        var nodes = parentNode.getElementsByTagName("city");
        //插入子节点
        insertOption(nodes,"city");
    }

    //value 节点的一个属性值
    //nodeName 节点名称
    function getParentNode(nodeName,value){
        //得到一个集合，里面包含与给定名称一样的节点
        var parents =areaxml.getElementsByTagName(nodeName);
        for(var i =0;i<parents.length;i++) {
            //找到与属性值相等的节点
            if(value == parents[i].getAttribute("value")){
                return parents[i];
            }
        }

    }

    //prop是插入的节点名称
    //nodes是要插入的节点集合
    function insertOption(nodes,prop){
        //得到显示节点的select
        var insertNode = document.getElementById(prop);
        //设置select长度,默认显示第一个Option
        insertNode.options.length = 1;
        //遍历节点,得到每个节点的值和显示的文本值
        for(var i=0;i<nodes.length;i++) {
            //创建option
            var option = document.createElement("option");
            option.text=nodes[i].getAttribute("name");
            option.value=nodes[i].getAttribute("value");
            //将option插入select
            insertNode.add(option);
        }
    }
    function initProvince() {
        var xhr = obj.getXHR;
        xhr.open("GET","../Area.xml",true);
        xhr.onreadystatechange=function() {
            if(xhr.readyState==4 && xhr.status==200) {
                areaxml = xhr.responseXML;
                var provinces = areaxml.getElementsByTagName("province");
                insertOption(provinces,"province");
            }
        }
        xhr.send();

    }

});